2 Pages  1 2 > 
Reply to this topicStart new topicStart Poll

Outline · [ Standard ] · Linear+

> [REL] MWScriptExtender Demo, Three mods in one to demonstrate MWSE

cdcooley
post Jan 9 2005, 01:16 AM
Post #1


Adept


Joined: 3-May 04



Would you like to give gifts to random people you meet? Or are you the mugger type and want to take the shirts off their backs?

Do you have companions that seem to get lost every time you use a Recall spell? Wouldn't it be nice to tell those escort quest folks to follow you and have them actually do it?

Are you tired of having only one Mark and Recall pair? Would you like to set up to 8 different Marks anywhere, even in cells added by other mods?


To make Raveren happy and show the doubters that it isn't impossible or even that hard to create mods using the newer versions of FreshFish's MWScriptExtender I've created a demonstration of some (but not nearly all) of it's features.

This is a playable mod, but it's really intended to inspire others to make their own. Each of the three components of this demo really deserves it's own well planned plugin. There are also many other functions of the Script Extender just waiting to be explored.

You'll need the MWSEdemo.zip (13kb) and at least a runtime version of the script extender which you can find on Shanjaq's Morrowind Online page (labeled Download 2). The full developer version of the MWScriptExtender including the script compiler is also on that Shanjaq's page labelled Optional. If you get the runtime version, you will also need to create a folder called "MWSE" in your Data Files folder to get the Follower and Recall features to work correctly.

You'll need Bloodmoon since the recent version of MWScriptExtender was built for version 1.6.1820 (although FreshFish has a standing offer to create one that works with 1.4.1313 too). Apparently, it only works with the American version too.

I haven't tested, but I suspect there will be conflicts with the Multimark mod since both are monitoring and modifying the same spell effects.

Despite the rumors it does work with both the FPS Optimizer and Morrowind Enhanced. I've used it with both Journal Enchanced and Writing Enhanced using Morrowind Enhanced version 1.21. (Start MSE first, then FPS, then MWSE if you use all three.)

This is definately not a "balanced" mod. You get all of the dialog topics and spells automatically which includes free Mark/Recall spells, the ability to steal everything any NPC owns (how about Helseth?), and have arbitrary NPCs follow you around as pseudocompanions (they will fight if you are attacked).

Feel free to create more balanced versions of these or suggest what balancing would be appropriate and maybe I or someone else will do it. (But Raveren, if you want someone else to do the work, be a little more polite and less demanding please. :) )

Report any problems here please.

[Edited to point the mod link to a different, hopefully more reliable host.]

It appears that the Verizon server is NOT a more reliable link. Here's the other
location again

MWSEdemo.zip (13kb)

This post has been edited by cdcooley: Jan 22 2005, 02:18 PM
TopReport Post
User is offlinePMEmail Poster
+Quote Post
bl4k3
post Jan 9 2005, 01:31 AM
Post #2


Curate
*

Joined: 19-June 04





what do you mean by give gifts?


--------------------
TopReport Post
User is offlinePMEmail Poster
+Quote Post
cdcooley
post Jan 9 2005, 01:39 AM
Post #3


Adept


Joined: 3-May 04



QUOTE(bl4k3 @ Jan 9 2005, 12:41 AM)
what do you mean by give gifts?
*


Give them any item you are carrying. You can give them a sword, a shirt, a cup, or even gold. I thought about it because I always thought it odd that I would rescue slaves and then turn them loose into the wilderness unarmed and unarmored. Not to mention the son of the Ashlander trader in Ald-ruhn. I really felt guilty letting him run around with nothing but a pair of pants when I had plenty of cheap armor and weapons that I wasn't even using. So now, I can give the poor unfortunates some of my castoffs.

The opposite is also available. You can demand that people hand over one or all of their possessions to you. If they really like you, there won't be much of a consequence for asking for one item (but you get one chosen at random). They get very upset if you take everything they own. You also have the option to "trade" possessions. They'll let you take anything they are carrying if you give them something of equal value in return.

This post has been edited by cdcooley: Jan 9 2005, 01:40 AM
TopReport Post
User is offlinePMEmail Poster
+Quote Post
Shanjaq
post Jan 9 2005, 01:42 AM
Post #4


Disciple
**

Joined: 31-July 02
From: Kudanat



Clever scripts! I'm interested to see how items are selected for placement into an arbitrary NPC's inventory.

Good thing you were able to get MWEdit to cooperate, it's not so stable on most machines =P

This post has been edited by Shanjaq: Jan 9 2005, 01:43 AM


--------------------
TopReport Post
User is offlinePMEmail Poster
+Quote Post
cdcooley
post Jan 9 2005, 01:47 AM
Post #5


Adept


Joined: 3-May 04



QUOTE(Shanjaq @ Jan 9 2005, 12:52 AM)
Good thing you were able to get MWEdit to cooperate, it's not so stable on most machines  =P
*


Really? I know BungaDunga had problems. It occasionally crashes at the strangest times, but if you save frequently it's little more an an annoyance. It doesn't crash on me any more often than the regular CS and game do.
TopReport Post
User is offlinePMEmail Poster
+Quote Post
Shanjaq
post Jan 9 2005, 01:50 AM
Post #6


Disciple
**

Joined: 31-July 02
From: Kudanat



QUOTE(cdcooley @ Jan 9 2005, 01:57 AM)
Really?  I know BungaDunga had problems.  It occasionally crashes at the strangest times, but if you save frequently it's little more an an annoyance.  It doesn't crash on me any more often than the regular CS and game do.
*



yeah, it seems to be a system settings or "DLL Hell" he's going through, because it consistently fails to load an existing plugin. I've never had the problem on any of my machines(tried on at least 3.)


--------------------
TopReport Post
User is offlinePMEmail Poster
+Quote Post
BungaDunga
post Jan 9 2005, 03:21 AM
Post #7


Diviner
***

Joined: 30-August 04



Good job, cdcooley! I've been having lots of trouble getting a multimark mod to work. I subsequently realized that I had, in fact, done it before and now I have my own working multiple marking scripts. It works with sets of linked items- you drop one, and you equip the other to teleport to the dropped one. I'm not sure quite how you implemented yours though.

How did you manage the "giving item" bit? A "gift box" like I think you mentioned somewhere else?

I'm going to see if I can find a Windows 98 disc somewhere and install that via VMWare- maybe that will let me run MWEdit in a more normal fashion :shrug:


--------------------
[REL] Better Portable Containers
QUOTE(qarl @ Dec 20 2004, 07:47 PM)
-The PC is to the Xbox as a man is to a eunuch.

Give a man a fire and he will be warm for the day, but light a man on fire and he will be warm for the rest of his life.
TopReport Post
User is offlinePMEmail Poster
+Quote Post
Beryllium
post Jan 9 2005, 04:08 AM
Post #8


Curate
*

Joined: 9-April 03



Is anybody else having trouble with this?
I CTD at the end of 'loading data' It is the development script extender that I'm running, so I'll download the runtime version.
Unchecking all of my plugins makes no difference. I wonder if it is an American/European MW versions thing... but I would have expected an error message if it was the wrong MW executable... am I right?

Edit:-
I meant 'Initialising Data' before the menu. And using the runtime makes no difference, as does unchecking everything except MW, TB & BM.

This post has been edited by Beryllium: Jan 9 2005, 04:16 AM
TopReport Post
User is offlinePMEmail Poster
+Quote Post
Raveren
post Jan 9 2005, 08:52 AM
Post #9


Curate
*

Joined: 21-December 04
From: Far out



Wow I'm flattered here!

And it WORKS WITH MWE?!?!?!?! YAY!!!!!

I just started doing a new project, should be done in a couple of hours, At least if MWEdit stops crashing...


--------------------
Possible:
1) Able to be done or achieved, or able to exist
2) MWScriptExtender0.9p3(with fixed xGetPCTarget *UPDATED*)

MWSE demo plugin by cdcooley
TopReport Post
User is offlinePMEmail Poster
+Quote Post
ReganInFrance
post Jan 9 2005, 11:16 AM
Post #10


Acolyte


Joined: 14-November 04



Please tell what I might be doing wrong.
I have put MWScriptExtender.exe in the morrowind directory, the ESP in the data files direstory, and checked it in the launcher (Just that and the 3 base ESMs). I did not run MWE or the FPS optimiser.

The add follower topic works fine and they'll follow me 'on foot' but when I recall or COC and cast 'call followers' nothing happens. I've tried it in the same cell as they are, and halfway across Vvardenfell.

You mentioned a \MWSE directory in data files, but it isn't there, neither while the game is running nor afterwards.

The sharing, giving, stealing options work perfectly, by the way.

This is such a leap forward in companion convenience that I must have it.

EDIT: I needed the 1.4meg zip file to run the ESP, as it contains the \data files\MWSE directory. Should this have been neccessary?

This post has been edited by ReganInFrance: Jan 9 2005, 11:32 AM


--------------------
Do you NIF ?
If not, get Milkshape and the NIFLA plugins!
http://www.milkshape3d.com
http://groups.yahoo.com/group/NIFLA/
TopReport Post
User is offlinePMEmail Poster
+Quote Post
cdcooley
post Jan 9 2005, 03:16 PM
Post #11


Adept


Joined: 3-May 04



QUOTE(Beryllium @ Jan 9 2005, 03:18 AM)
Unchecking all of my plugins makes no difference.  I wonder if it is an American/European MW versions thing... but I would have expected an error message if it was the wrong MW executable... am I right?
*


I suspect it only works with the American version. You'll have to PM FreshFish to be sure. Sorry.

QUOTE(ReganInFrance @ Jan 9 2005, 10:26 AM)
The sharing, giving, stealing options work perfectly, by the way.

This is such a leap forward in companion convenience that I must have it.

EDIT: I needed the 1.4meg zip file to run the ESP, as it contains the \data files\MWSE directory. Should this have been neccessary?
*


I'm glad you got things working. I hadn't thought about the fact that the MWSE directory isn't included in the mini download. I will update my instructions. You really just needed an empty folder called MWSE in Data Files.
TopReport Post
User is offlinePMEmail Poster
+Quote Post
ReganInFrance
post Jan 9 2005, 03:41 PM
Post #12


Acolyte


Joined: 14-November 04



I have what I assume to be a European version, in english, but maybe the GOTY pack is universal?

The collision on 'followers' seems to be switched off, meaning I can walk through them and they can go through each other. It's not a big deal but it can be quite difficult trying to speak to one if he/she is mixed up with the others. Otherwise it's near perfect :)


--------------------
Do you NIF ?
If not, get Milkshape and the NIFLA plugins!
http://www.milkshape3d.com
http://groups.yahoo.com/group/NIFLA/
TopReport Post
User is offlinePMEmail Poster
+Quote Post
cdcooley
post Jan 9 2005, 03:57 PM
Post #13


Adept


Joined: 3-May 04



QUOTE(ReganInFrance @ Jan 9 2005, 02:51 PM)
I have what I assume to be a European version, in english, but maybe the GOTY pack is universal?

The collision on 'followers' seems to be switched off, meaning I can walk through them and they can go through each other. It's not a big deal but it can be quite difficult trying to speak to one if he/she is mixed up with the others. Otherwise it's near perfect :)
*


I confess I have no idea about the versions, but I suspect you are right that there is only one English version.

It's supposed to be a demo, not perfect! Seriously, I forgot to Disable/Enable the followers in the sed_follower_call script. I should have diabled and enabled each one of them just after the xPositionCell call. Adding these four lines between the xPositionCell line and the xFileReadString line in the whilex loop should make them solid.
CODE

xSetRef npcid
Disable
xSetRef npcid
Enable

Since you downloaded the developer version of the extender you should be able to open the mod in MWEditSE and make the change yourself. I'll probably release an updated version in a week or so after I've gotten more feedback for the issues like this that I've missed, but the purpose is really to inspire others.
TopReport Post
User is offlinePMEmail Poster
+Quote Post
Raveren
post Jan 9 2005, 05:05 PM
Post #14


Curate
*

Joined: 21-December 04
From: Far out



Found a small issue, when casting alternate recall withought casting alternate mark first, puts you in random places all over morrowind...

Didn't playtest exessively, but everything else I tried works just fine... Found it quite ..interesting though to steal all equipment from an imperial guard @level1 and get away with no bounty, just a naked bare-fist fighting imperial chasing me. Also, if you WOULD intend to make this mod balanced, the item trading should be based on npc's/players mercantile ratio... Also, "add as follower" shold only work if the npc is already on AI follow command.


--------------------
Possible:
1) Able to be done or achieved, or able to exist
2) MWScriptExtender0.9p3(with fixed xGetPCTarget *UPDATED*)

MWSE demo plugin by cdcooley
TopReport Post
User is offlinePMEmail Poster
+Quote Post
cdcooley
post Jan 9 2005, 05:44 PM
Post #15


Adept


Joined: 3-May 04



QUOTE(Raveren @ Jan 9 2005, 04:15 PM)
Found a small issue, when casting alternate recall withought casting alternate mark first, puts you in random places all over morrowind...

Random places? The Alternate recall spell should give you a message if you try to go to an unset mark. The Extra recall on the other hand could very well send you to strange places. The sed_alt_recall_script includes an extra xStringCompare and test to verify that the location is valid that the sed_extra_recall_script doesn't have. Is that what you mean or is the Alternate recall really broken? If it's the Extra version you can just replace the xPositionCell line in the sed_extra_recall_script with:
CODE

short diff ; need a temporary variable here

setx diff to xStringCompare cellid "null"
ifx ( diff )
   player->xPositionCell px, py, pz, pa, cellid
else
   MessageBox "That Mark has not been set."
endif

But make sure you have morrowind.esm loaded along with the MWSEdemo.esp in MWEditSE or you'll get errors about the "player" being unkown/undefined when you
try to recompile the script.

QUOTE
Didn't playtest exessively, but everything else I tried works just fine... Found it quite ..interesting though to steal all equipment from an imperial guard @level1 and get away with no bounty, just a naked bare-fist fighting imperial chasing me. Also, if you WOULD intend to make this mod balanced, the item trading should be based on npc's/players mercantile ratio... Also, "add as follower" shold only work if the npc is already on AI follow command.
*


Well, I warned you that they weren't balanced. I intentionally left those unbalanced though so that people can reasonably easily try the features. I did add some minimal disposition requirements just to demonstrate that restrictions are possbile.

Perhaps a bounty between what you would get for an unprovoked attack and murder would be appropriate?

I'm open to ideas on how to work mercantile skills into the trading system. I haven't been able to think of a way to do it, but I'm sure there is something.

Making the follower topic only work if they are already in AIFollow mode is possible with a multi-stage dialog and a targeted script to set a flag. I had thought about just checking based on the Companion variable, but that would exclude those escort quest NPCs.
TopReport Post
User is offlinePMEmail Poster
+Quote Post
Raveren
post Jan 9 2005, 06:05 PM
Post #16


Curate
*

Joined: 21-December 04
From: Far out



QUOTE(cdcooley @ Jan 9 2005, 11:54 PM)
Random places?  The Alternate recall spell should give you a message if you try to go to an unset mark.  The Extra recall on the other hand could very well send you to strange places.  The sed_alt_recall_script includes an extra xStringCompare and test to verify that the location is valid that the sed_extra_recall_script doesn't have.  Is that what you mean or is the Alternate recall really broken?  If it's the Extra version you can just replace the xPositionCell line in the sed_extra_recall_script with:
CODE

short diff; need a temporary variable here

setx diff to xStringCompare cellid "null"
ifx ( diff )
   player->xPositionCell px, py, pz, pa, cellid
else
   MessageBox "That Mark has not been set."
endif

But make sure you have morrowind.esm loaded along with the MWSEdemo.esp in MWEditSE or you'll get errors about the "player" being unkown/undefined when you
try to recompile the script.
Well, I warned you that they weren't balanced.  I intentionally left those unbalanced though so that people can reasonably easily try the features.  I did add some minimal disposition requirements just to demonstrate that restrictions are possbile. 

Perhaps a bounty between what you would get for an unprovoked attack and murder would be appropriate?

I'm open to ideas on how to work mercantile skills into the trading system.  I haven't been able to think of a way to do it, but I'm sure there is something.

Making the follower topic only work if they are already in AIFollow mode is possible with a multi-stage dialog and a targeted script to set a flag.  I had thought about just checking based on the Companion variable, but that would exclude those escort quest NPCs.
*




:bowdown: this guy actually knows what he's doing ;) yes, i DID mix up the recall types, you're right. Was fun though to find yourself in middle of nowhere with fargoth following you (and leave him there:))

oh and choosing any of the dialogue options with a too low disp returns you a "I dont trust you enough to talk about that" responce! This string should be changed I think...

QUOTE
Perhaps a bounty between what you would get for an unprovoked attack and murder would be appropriate?

A bounty equal to the stolen item's value should be more appopriate (if possible)... Unless you're mugging someone when no one sees you/you're wearing a special disguise... Hey a mugger mod anyone? ;)

perhaps you could help me with my little project too? Link
thank you.


--------------------
Possible:
1) Able to be done or achieved, or able to exist
2) MWScriptExtender0.9p3(with fixed xGetPCTarget *UPDATED*)

MWSE demo plugin by cdcooley
TopReport Post
User is offlinePMEmail Poster
+Quote Post
DragoonWraith
post Jan 9 2005, 06:36 PM
Post #17


Diviner
***

Joined: 13-June 03



Disguises have already been done by the uber-incredible Magical Trinkets of Tamriel 3 (and above). As for the penalty, I'd say Unprovoked Attack (assuming they aren't in combat with you) + value of stolen items. That, of course, requires some way of getting the stolen items? Is there a way to do such?


--------------------
"change the world..."
QUOTE(Braddock @ Oct 15 2004, 11:51 PM)
a ninja dressed like a clown is still just as stealthy, provided he's at a circus
"Blinding light, bind my foes in unbreakable chains... Disperse the shadows! Ray of Paralysis!"
~Saradin Carm

Bonus Points:
Ronin +5
NuclearDope +10
MOO_COW +20
RavynAngel +20
Case +50
TopReport Post
User is offlinePMEmail Poster
+Quote Post
Silver_Falcon
post Jan 9 2005, 06:44 PM
Post #18


Curate
*

Joined: 13-March 04



cool, I'm going to try a few things with this :)


--------------------
TopReport Post
User is offlinePMEmail Poster
+Quote Post
Raveren
post Jan 9 2005, 06:46 PM
Post #19


Curate
*

Joined: 21-December 04
From: Far out



QUOTE(DragoonWraith @ Jan 10 2005, 12:46 AM)
Disguises have already been done by the uber-incredible Magical Trinkets of Tamriel 3 (and above). As for the penalty, I'd say Unprovoked Attack (assuming they aren't in combat with you) + value of stolen items. That, of course, requires some way of getting the stolen items? Is there a way to do such?
*



As you mentioned in another thread you didn't use the demo, so it works like this: you raise the npc's disposition high enough and select "~Steal everything" dialogue entry...and you steal everything from him/her;) The value could be easily determined by using minimalprofit or something like that tribunal function...

Cdcooley did say it is unbalancing...

edit: mtt3 disguises work in a different way, they TAKE AWAY your bounty, whilst it would be fun robbing commoners of anything they have in dark alleys dressed like :ninja:

This post has been edited by Raveren: Jan 9 2005, 06:48 PM


--------------------
Possible:
1) Able to be done or achieved, or able to exist
2) MWScriptExtender0.9p3(with fixed xGetPCTarget *UPDATED*)

MWSE demo plugin by cdcooley
TopReport Post
User is offlinePMEmail Poster
+Quote Post
cdcooley
post Jan 9 2005, 06:51 PM
Post #20


Adept


Joined: 3-May 04



QUOTE(Raveren @ Jan 9 2005, 05:15 PM)
oh and choosing any of the dialogue options with a too low disp returns you a "I dont trust you enough to talk about that" responce! This string should be changed I think...
*
That's the default generated from the Info Refusal section. Adding another dialog entry for each topic that doesn't have a disposition requirement would take precedence.
The dialog really should be race specific too, I just wanted to get a working version out.

QUOTE
A bounty equal to the stolen item's value should be more appopriate (if possible)...
Unfortunately, I can't think of a way to do that. There aren't any functions to get the value of an item.

QUOTE
Unless you're mugging someone when no one sees you/you're wearing a special disguise... Hey a mugger mod anyone? ;)
I like it.
TopReport Post
User is offlinePMEmail Poster
+Quote Post
DragoonWraith
post Jan 9 2005, 06:53 PM
Post #21


Diviner
***

Joined: 13-June 03



QUOTE(Raveren @ Jan 9 2005, 05:56 PM)
edit: mtt3 disguises work in a different way, they TAKE AWAY your bounty, whilst it would be fun robbing commoners of anything they have in dark alleys dressed like  :ninja:
*

Actually, if you're wearing a disguise, you don't get incriminated for the offense. If you want to just not be seen, that would be a simple matter of a CE Invisibility Ninja-Suit.

And theft is part of dialogue? Aw, I was hoping it was some kind of move or skill (0 Magicka spell) that you use on people.


--------------------
"change the world..."
QUOTE(Braddock @ Oct 15 2004, 11:51 PM)
a ninja dressed like a clown is still just as stealthy, provided he's at a circus
"Blinding light, bind my foes in unbreakable chains... Disperse the shadows! Ray of Paralysis!"
~Saradin Carm

Bonus Points:
Ronin +5
NuclearDope +10
MOO_COW +20
RavynAngel +20
Case +50
TopReport Post
User is offlinePMEmail Poster
+Quote Post
BungaDunga
post Jan 9 2005, 06:58 PM
Post #22


Diviner
***

Joined: 30-August 04



QUOTE(DragoonWraith @ Jan 9 2005, 03:03 PM)
And theft is part of dialogue? Aw, I was hoping it was some kind of move or skill (0 Magicka spell) that you use on people.
*



I think it is possible to do it as a spell too- if xGetPCTarget (I think that is the command) works as expected.


--------------------
[REL] Better Portable Containers
QUOTE(qarl @ Dec 20 2004, 07:47 PM)
-The PC is to the Xbox as a man is to a eunuch.

Give a man a fire and he will be warm for the day, but light a man on fire and he will be warm for the rest of his life.
TopReport Post
User is offlinePMEmail Poster
+Quote Post
cdcooley
post Jan 9 2005, 07:08 PM
Post #23


Adept


Joined: 3-May 04



QUOTE(DragoonWraith @ Jan 9 2005, 06:03 PM)
And theft is part of dialogue? Aw, I was hoping it was some kind of move or skill (0 Magicka spell) that you use on people.
*

Sorry, I got lazy. (And there was the bug with the xGetPCTarget function.) I really just wanted to prove that the script extender part of getting the items to and from the NPCs isn't terribly difficult. Even without the xGetPCTarget function, you could use the technique from the Scripted Spells mod that lets you steal other people's spells and call my item stealing script instead of the spell stealing one.

The sed_inventory_take_one script (run as a targeted script) on some NPC will take one of it's possessions (chosen randomly) and give it to the "sed_holder". The sed_inventory_take_all script will take everything, and the sed_inventory_restore will transfer everything from the "sed_holder" into someone else's inventory. So stealing an item is simply a matter of running one of the "take" scripts on an NPC and then the "restore" script on the player. (The sed_holder is an invisible NPC stored in a special custom cell.)
TopReport Post
User is offlinePMEmail Poster
+Quote Post
DragoonWraith
post Jan 9 2005, 08:31 PM
Post #24


Diviner
***

Joined: 13-June 03



Ah. OK. I'm starting to understand how it works. It does mean I've got a bunch of functions to learn, but OK, at least I'm not completely befuddled (as I was by Shanjaq's post a little while ago). Is it possible to set it up to steal the NPC's equipped weapon, or armor, or something? Maybe create a real Thief character class?


--------------------
"change the world..."
QUOTE(Braddock @ Oct 15 2004, 11:51 PM)
a ninja dressed like a clown is still just as stealthy, provided he's at a circus
"Blinding light, bind my foes in unbreakable chains... Disperse the shadows! Ray of Paralysis!"
~Saradin Carm

Bonus Points:
Ronin +5
NuclearDope +10
MOO_COW +20
RavynAngel +20
Case +50
TopReport Post
User is offlinePMEmail Poster
+Quote Post
cdcooley
post Jan 9 2005, 09:01 PM
Post #25


Adept


Joined: 3-May 04



QUOTE(DragoonWraith @ Jan 9 2005, 07:41 PM)
Ah. OK. I'm starting to understand how it works. It does mean I've got a bunch of functions to learn, but OK, at least I'm not completely befuddled (as I was by Shanjaq's post a little while ago). Is it possible to set it up to steal the NPC's equipped weapon, or armor, or something? Maybe create a real Thief character class?
*


My script doesn't make a distinction between equipped and unequipped items. Targeting a particular type of item would be more difficult but possible. It's easier to take the "grab one at random" approach so that's what I did. I should probably have weighted the probabilities so that you were more likely to get a non-equipped item now that I think about it. It should be VERY hard to steal any equipped items through stealth. How can you take someone's shirt without drawing attention to yourself? As a spell or as a mugging it makes more sense. The "Give me something and I'll let you live" line is a classic, and now the PLAYER can use it on the NPCs.

The scripting really isn't that hard. I guess you still haven't had a chance to check it out so here's the script to cycle through someone's inventory and take everything. The "sed_holder" could be any container, NPC, or creature.
CODE
begin sed_inventory_take_all
; Run as a targeted global script to transfer all of the items held by the
; target (container/NPC/creature) to the temporary storage NPC (sed_holder).
; Warning: Negative inventory items will be removed, and the magic
;          respawning behavior will be lost.
; Warning: Leveled Items (LEVI) will be transfered, but lose their magic
;          and will show up with broken icons and no meshes.  Need a good
;          way to detect and eliminate or ignore these.
stopscript sed_inventory_take_all
long ctid
long invitem
long invref
long invcount
setx ctid to xGetRef "sed_holder"
setx invitem,invcount,invref to xInventory
whilex ( invcount )
       if ( invcount < 0 )    ; lose the magic of negative inventory
               set invcount to 0 - invcount
       endif
       ctid->xAddItem invitem invcount
       xRemoveItem invitem invcount
       setx invitem,invcount,invref to xInventory
endwhile


The take one version is only slightly longer and that's because of the logic needed to select one of them at random. The inventory manipulation commands are the same.
TopReport Post
User is offlinePMEmail Poster
+Quote Post
TrevorDemented
post Jan 9 2005, 09:34 PM
Post #26


Acolyte


Joined: 8-September 04



One thing I'd like to see in MW is a way to have random fighting amongst NPCs and NPCs and creatures and so on. That would add some realism maybe that can be added in the future just a humble suggestion.
TopReport Post
User is online!PM
+Quote Post
Beryllium
post Jan 10 2005, 05:54 AM
Post #27


Curate
*

Joined: 9-April 03



QUOTE(cdcooley @ Jan 10 2005, 07:26 AM)
QUOTE
Unchecking all of my plugins makes no difference.  I wonder if it is an American/European MW versions thing... but I would have expected an error message if it was the wrong MW executable... am I right?

I suspect it only works with the American version. You'll have to PM FreshFish to be sure. Sorry.
*


Well, I'm reinstalling MW from scratch. It seems other people are not having this problem. Is FreshFish ever around these days?

Edit:-
No go. A new install of MW on a different machine, running XP instead of W2K, and it also crashes to desktop at the end of the 'initialising data' phase. The same thing happens when I try an old version 0.8d of the extender. So it's not likely to be the download.

If it is the environment theh I find it difficult to believe that it happens on both of my computers, but no-body else is seeing it.

There is nothing in the logs or error messages, and nothing is displayed in the DOS box that the extender is running in. Both programs just suddenly terminate. Very odd...

It's problems like this that are one reason why developers steer shy of the extender. Apparently it only works with one version of Morrowind. This might not be a problem if it was under active development, because it is possible to write an extender which searches the target executable for it's correct insertion point, and will therefore work on all versions that the developer has access to and can reasonably be expected to work on future versions as well.

This post has been edited by Beryllium: Jan 10 2005, 08:35 AM
TopReport Post
User is offlinePMEmail Poster
+Quote Post
ReganInFrance
post Jan 10 2005, 12:14 PM
Post #28


Acolyte


Joined: 14-November 04



QUOTE(cdcooley @ Jan 9 2005, 10:07 PM)
I forgot to Disable/Enable the followers in the sed_follower_call script.  Since you downloaded the developer version of the extender you should be able to open the mod in MWEditSE and make the change yourself.
*



That did the trick :) It was a bit like playing Dungeon Siege before I added those lines of code.
Sometimes followers don't become solid immediately, or only 1 of them becomes solid, but after a cell change they are all solid. Just thought you ought to know. It might be my heavily modded game that's throwing it off, as certain script intensive things do tend to malfunction at times (Vampire Embrace notably).

Thanks for this fantastic enhancement :)


--------------------
Do you NIF ?
If not, get Milkshape and the NIFLA plugins!
http://www.milkshape3d.com
http://groups.yahoo.com/group/NIFLA/
TopReport Post
User is offlinePMEmail Poster
+Quote Post
cdcooley
post Jan 10 2005, 01:56 PM
Post #29


Adept


Joined: 3-May 04



QUOTE(ReganInFrance @ Jan 10 2005, 11:24 AM)
That did the trick :) It was a bit like playing Dungeon Siege before I added those lines of code.
Sometimes followers don't become solid immediately, or only 1 of them becomes solid, but after a cell change they are all solid. Just thought you ought to know. It might be my heavily modded game that's throwing it off, as certain script intensive things do tend to malfunction at times (Vampire Embrace notably).

Thanks for this fantastic enhancement :)
*


Sometimes the Disable/Enable trick doesn't work unless you do it twice in two different frames. So something like:
CODE
begin sed_follower_call


float px
float py
float pz
float pa

long npcid
long cellid
long tmp_follower

short diff
short state


ifx ( state )  ; this is really the second pass, the first is in the else section

   stopscript sed_follower_call
   set state to 0  ; reset for next time

   xFileRewind "sedfollowers"

   setx tmp_follower to xFileReadString "sedfollowers"
   setx diff to xStringCompare tmp_follower "null"
   whilex ( diff )

       setx npcid to xGetRef tmp_follower

       xSetRef npcid
       Disable
       xSetRef npcid
       Enable

       setx tmp_follower to xFileReadString "sedfollowers"
       setx diff to xStringCompare tmp_follower "null"
   endwhile

else  ; this is the first step for moving the followers

   set state to 2; gets ready for the second step

   set px to player->GetPos X
   set py to player->GetPos Y
   set pz to player->GetPos Z
   set pa to player->GetAngle Z
   setx cellid to xPCCellId

   xFileRewind "sedfollowers"

   setx tmp_follower to xFileReadString "sedfollowers"
   setx diff to xStringCompare tmp_follower "null"
   whilex ( diff )

       setx npcid to xGetRef tmp_follower

       npcid->xPositionCell px, py, pz, pa, cellid
       xSetRef npcid
       Disable
       xSetRef npcid
       Enable

       setx tmp_follower to xFileReadString "sedfollowers"
       setx diff to xStringCompare tmp_follower "null"
   endwhile

end


I'm not at the computer where I can test this, so there might be a problem though.
TopReport Post
User is offlinePMEmail Poster
+Quote Post
cdcooley
post Jan 10 2005, 02:05 PM
Post #30


Adept


Joined: 3-May 04



QUOTE(Beryllium @ Jan 10 2005, 05:04 AM)
It's problems like this that are one reason why developers steer shy of the extender.  Apparently it only works with one version of Morrowind.  This might not be a problem if it was under active development, because it is possible to write an extender which searches the target executable for it's correct insertion point, and will therefore work on all versions that the developer has access to and can reasonably be expected to work on future versions as well.
*


It's really the "chicken and egg" problem. People don't want to use it because it doesn't work on all versions and FreshFish hasn't gone to the trouble of making it work on multiple versions because people weren't showing any interest. What exact version string does your game report? You did apply the Bloodmoon patch right?

FreshFish does provide the source and he has always offered to work on alternate versions, but very few people have shown interest. I'm actually amazed that he's kept working on it will all of the negative reactions people keep giving him. But I am certainly glad that he has.

I just checked and even at 0.9, the script extender is labeled as a beta release. It is under active development, it's just that the development is a little slower than some people would like. But then, I don't see anyone else taking the source and fixing the problems themselves either. I've thought about it, but have enough other things to do, especially right now. So be patient and it may work for you too.

This post has been edited by cdcooley: Jan 10 2005, 02:21 PM
TopReport Post
User is offlinePMEmail Poster
+Quote Post
Max_aka_NOBODY
post Jan 10 2005, 02:24 PM
Post #31


Diviner
***

Joined: 3-December 03
From: Vivec, Jobasha's Rare Books



I keep hearing of this source, but never managed to find it. Where is it?


--------------------
The LGNPC Project
TES4.com

My mods:

Vivid MW Repaint
Morrowind Photographer
The Roads to Heaven
Complete Morrowind
Windows Glow
Reflective Gold
Death
Readable Books
...
TopReport Post
User is offlinePMEmail Poster
+Quote Post
Beryllium
post Jan 10 2005, 07:17 PM
Post #32


Curate
*

Joined: 9-April 03



QUOTE(cdcooley @ Jan 11 2005, 06:15 AM)
It's really the "chicken and egg" problem.  People don't want to use it because it doesn't work on all versions and FreshFish hasn't gone to the trouble of making it work on multiple versions because people weren't showing any interest.  What exact version string does your game report?  You did apply the Bloodmoon patch right?

My version string is 1.6.1820 and the European Bloodmoon patch has been applied.... the American one gives a missmatch error. But without decent error messages I can't be sure that it is really a version proble. FreshFish visits regularly... every six months... so support from that direction is problematic. Without good support what is a user, let alone a developer, to do?
TopReport Post
User is offlinePMEmail Poster
+Quote Post
cdcooley
post Jan 11 2005, 12:22 AM
Post #33


Adept


Joined: 3-May 04



QUOTE(Max_aka_NOBODY @ Jan 10 2005, 01:34 PM)
I keep hearing of this source, but never managed to find it. Where is it?
*


The lastest version that has been released is the one on Shanjaq's site. The full developer version that he labels "optional" for running Morrowind Online has the source for the ScriptExtender itself and the MWEditSE sources with the files needed to compile the new functions.
TopReport Post
User is offlinePMEmail Poster
+Quote Post
DragoonWraith
post Jan 11 2005, 12:31 AM
Post #34


Diviner
***

Joined: 13-June 03



Heh, and before this thread I thought MWSE was something made way back when before I got into the game, and the creator had left his project available with little/no documentation, and only Shanjaq had the amazing ability to figure it out. I appear to be very much mistaken in that regard.


--------------------
"change the world..."
QUOTE(Braddock @ Oct 15 2004, 11:51 PM)
a ninja dressed like a clown is still just as stealthy, provided he's at a circus
"Blinding light, bind my foes in unbreakable chains... Disperse the shadows! Ray of Paralysis!"
~Saradin Carm

Bonus Points:
Ronin +5
NuclearDope +10
MOO_COW +20
RavynAngel +20
Case +50
TopReport Post
User is offlinePMEmail Poster
+Quote Post
cdcooley
post Jan 11 2005, 12:35 AM
Post #35


Adept


Joined: 3-May 04



QUOTE(Beryllium @ Jan 10 2005, 06:27 PM)
My version string is 1.6.1820  and the European Bloodmoon patch has been applied.... the American one gives a missmatch error. 

That error would seem to confirm that your version is different enough from the one he compiled against to be incompatible. Sorry.
QUOTE
But without decent error messages I can't be sure that it is really a version proble.  FreshFish visits regularly... every six months... so support from that direction is problematic.  Without good support what is a user, let alone a developer, to do?
*


Well, as I said it really is still a work in progress and no one has risen to the challenge of helping in the development. I agree it can be a problem and I understand your frustration but I do hold hope that the next version really will be worthy of a 1.0 version number. When that happens I suspect the code will support more versions. It's possible that FreshFish didn't even realize that the European version would be different enough since it has an identical version number and I doubt if he has a version to check.
TopReport Post
User is offlinePMEmail Poster
+Quote Post
Beryllium
post Jan 11 2005, 01:25 AM
Post #36


Curate
*

Joined: 9-April 03



QUOTE(cdcooley @ Jan 11 2005, 04:45 PM)
QUOTE
My version string is 1.6.1820  and the European Bloodmoon patch has been applied.... the American one gives a missmatch error. 

That error would seem to confirm that your version is different enough from the one he compiled against to be incompatible. Sorry.

No. That is a message from the Ametican patch v1.6.1820 They probably refer to one of the .bsa files, since the patch does produce a v1.6.1820 executable.
Anyway I've just run the American patch against a fresh Bloodmoon install and the extender still barfs. Maybe I need a set of American issue MW + TB + BM as well.... though from what people report here, the extender does work for others with the European release. As I said, without an error message we are guessing as to the cause.
QUOTE
Well, as I said it really is still a work in progress and no one has risen to the challenge of helping in the development.  I agree it can be a problem and I understand your frustration but I do hold hope that the next version really will be worthy of a 1.0 version number.  When that happens I suspect the code will support more versions.  It's possible that FreshFish didn't even realize that the European version would be different enough since it has an identical version number and I doubt if he has a version to check.
*

I can post a DVD to any interested developer that contains all of the installed versions to which I have access, zipped up.... the original install, v1.2.0722, v1.3.1029 with TB, v1.4.1313, v1.5.1629 with BM, and the last European patched v1.6.1820
TopReport Post
User is offlinePMEmail Poster
+Quote Post
Max_aka_NOBODY
post Jan 11 2005, 02:17 PM
Post #37


Diviner
***

Joined: 3-December 03
From: Vivec, Jobasha's Rare Books



Thanx, cdcooley. Never realized it was there. :embarrased:


--------------------
The LGNPC Project
TES4.com

My mods:

Vivid MW Repaint
Morrowind Photographer
The Roads to Heaven
Complete Morrowind
Windows Glow
Reflective Gold
Death
Readable Books
...
TopReport Post
User is offlinePMEmail Poster
+Quote Post
Beryllium
post Jan 12 2005, 04:54 PM
Post #38


Curate
*

Joined: 9-April 03



QUOTE(Max_aka_NOBODY @ Jan 12 2005, 06:27 AM)
Thanx, cdcooley. Never realized it was there. :embarrased:
*


Have you looked at it?

It isn't too complicated, but all of the important stuff is the entry points into the executable and there's no way to verify them except by, I think, putting a breakpoint in a system call such as open file or in morrowind.exe and running it along with a debugger. That's how I would have done it years ago with turbo-debugger in DOS, but I don't know how today's developers do it.

Over a year ago, when FreshFish had only the Morrowind-only version of MWSE, we had a lot of conversations about writing a Bloodmoon version. I offered to do the research on the entry points if he could clue me up on how to do it in a modern Windows environment, but he was too busy doing other things and we lost contact with each other. Eventually he did get Bloodmoon and did update MWSE, as we see. Maybe, in the fullness of time, MWSE will become a mature and robust application. But in the meantime the universe is expanding and cooling and I'm getting closer to writing my last line of code.
TopReport Post
User is offlinePMEmail Poster
+Quote Post
Beryllium
post Jan 13 2005, 12:31 PM
Post #39


Curate
*

Joined: 9-April 03



We should try and keep this thread alive so that FreshFish will see it when he shows up. If he shows up.

Looking through his code for the entry points I came up with the following table:-
CODE

FIXUPSCRIPTBREAK           0FAD60 0FDB00
FIXUPPLAYER                0FB2BA 0FE05A
FIXUPPLAYERBREAK           0FB2C8 0FE068
FIXUPINSTANCE              0FB2CD 0FE06D
FIXUPINSTANCEBREAK         0FB2E1 0FE081
FIXUPTEMPLATE              0FB3E0 0FE180
FIXUPTEMPLATEBREAK         0FB3F5 0FE195
DECODEWITHINFOBREAK        0FD792 100540
RUNSCRIPTBREAK             0FFAE0 1028A0
RUNFUNCOPCODETEST          102A71 105831
HASITEMEQUIPPEDRESULT      105015 107C54
PLACEATPCRESULT      106D03 109A94
RUNFUNCIDXERRBREAK     10A505 10D5D6
RUNFUNCIDXERRCONTINUE     10A525 10D5F6
TES3OP_IMAGE     3A0CF4 3A91C4
MASTER_IMAGE     3BE11C 3C67DC
MASTERCELL_IMAGE     3BE120 3C67E0
MASTER2_IMAGE     3BE61C 3C6CDC
SECONDOBJECT_IMAGE    3C6038 3CE6F8
TARGETCELL_IMAGE     3C6038 3CE6F8
DESTINATIONX_IMAGE    3C6388 3CEA48
DESTINATIONY_IMAGE    3C638C 3CEA4C
DESTINATIONZ_IMAGE    3C6390 3CEA50
TARGETROTX_IMAGE    3C6448 3CEB08
TARGETROTY_IMAGE    3C644C 3CEB0C
TARGETROTZ_IMAGE    3C6450 3CEB10
TES3IP_IMAGE      3C64F0 3CEBB0
VARINDEX_IMAGE     3C64F4 3CEBB4
SECONDOBJECT_LENGTH_IMAGE    3C64F8 3CEBB8
SCRIPTTARGETREF_IMAGE    3C652C 3CEBEC
SCRIPTTARGETTEMPL_IMAGE    3C6534 3CEBF4
LOCALVARIABLES_IMAGE     3C6538 3CEBF8
That was from looking at the header files. I don't know if there might be more embedded in the .cpp files. The first column of values is from the plain MW version and the second is from the Bloodmoon version.

I figured a way to check these. Starting WinHex up and then MW in windowed mode, then transferring back to WinHex, opening the RAM editor on morrowind.exe and save-as to mw_version_whatever.dat
Then exiting from everything. Later I open the dat file that I made in WinHex and look at the addresses from the above list.

What I see confirms that I'm using non-compatable versions. For example the first address, 0xfad60 in plain morrowind seems to be the middle of some sort of table, wheras the corresponding 0xfdb00 from the bloodmoon version seems to be in the middle of a block of code.

These DAT files are about 180 meg. Too big to email. But I've burned that DVD that I promised with the data from as many versions as I've got.

Without an actual version that corresponds to FreshFish's table I can't find the corresponding places in the other versions, because I need to know what to look for.

I woke up at 2AM this morning with this idea and just had to try it out. Now it's nearly time to get breakfast ready.
TopReport Post
User is offlinePMEmail Poster
+Quote Post
Grumpy
post Jan 13 2005, 04:04 PM
Post #40


Disciple
**

Joined: 2-August 02



QUOTE(ReganInFrance @ Jan 10 2005, 12:24 PM)
That did the trick :) It was a bit like playing Dungeon Siege before I added those lines of code.
Sometimes followers don't become solid immediately, or only 1 of them becomes solid, but after a cell change they are all solid. Just thought you ought to know. It might be my heavily modded game that's throwing it off, as certain script intensive things do tend to malfunction at times (Vampire Embrace notably).

Thanks for this fantastic enhancement :)
*



Know nothing about the extender, so this may be moot, but I'll put it up anyway:

Did a non-extender version of this for one companion, and had roughly the same problem. Way I worked around it was to use a timer with a 1 second delay before issuance of the second set of disable/enable functions.

Another option was to use a distance check for the second set. Would require the player to move a short distance from the object before the second set activated. Basically a delay as cdcooley has suggested. with his one frame delay suggestion.

Not sure if it applies here, but Cortex has suggested that more than one frame may be necessary for some operations where NPCs and changes to status (such as a change in their current AI package) are involved.


--------------------
Grumpy
My mods
TopReport Post
User is offlinePMEmail Poster
+Quote Post
Beryllium
post Jan 14 2005, 12:50 AM
Post #41


Curate
*

Joined: 9-April 03



Am I a few tealeaves short of a brew? Suddenly, it works. I can't get it to crash like it used to. Even adding 57 mods doesn't faze it.

I was able to steal everything off a slave trader, and was then beaten to death by the naked guy. What a laugh.

I've no idea what I did to fix it.... I was swapping versions in and out from zipped-up previous installations. No idea... can't reproduce it... but happy.

I'd still like to help FF or whoever is interested extending MWSE to cover all versions... but I still don't know how.
TopReport Post
User is offlinePMEmail Poster
+Quote Post
BungaDunga
post Jan 14 2005, 01:03 AM
Post #42


Diviner
***

Joined: 30-August 04



QUOTE(Beryllium @ Jan 13 2005, 09:00 PM)
Am I a few tealeaves short of a brew?  Suddenly, it works.  I can't get it to crash like it used to.  Even adding 57 mods doesn't faze it.
*



Good to hear you got it to work ^_^ FreshFish has fixed xPlaceItem (yay!) so now I can make a proper necromancy-on-all script.


--------------------
[REL] Better Portable Containers
QUOTE(qarl @ Dec 20 2004, 07:47 PM)
-The PC is to the Xbox as a man is to a eunuch.

Give a man a fire and he will be warm for the day, but light a man on fire and he will be warm for the rest of his life.
TopReport Post
User is offlinePMEmail Poster
+Quote Post
cdcooley
post Jan 14 2005, 01:46 AM
Post #43


Adept


Joined: 3-May 04



QUOTE(Beryllium @ Jan 14 2005, 12:00 AM)
Am I a few tealeaves short of a brew?  Suddenly, it works.  I can't get it to crash like it used to.  Even adding 57 mods doesn't faze it.

I was able to steal everything off a slave trader, and was then beaten to death by the naked guy.  What a laugh.
*

I'm glad you got it working. It must just be the presence of FreshFish since I got a PM yesterday. He's been reading this thread and is working on the next version. We may be approaching the mystic 1.0 release!

I'm also glad someone enjoyed the tweaks I make if you take everything from an NPC. I just wanted to demonstrate that you can do something. Obviously, it would be better to put a bounty on the player, but this was more fun. I thought about creating a half-dozen half-size Fargoth's to swarm in and attack, but decided that was just too much.

And FreshFish has given me the secret for making xGetPCTarget work. The error is in the compiler code not the extender itself. So if you're brave enough to hex edit the your esp, you can use it now. If not, just wait a little while longer for the next release. It shouldn't be too long now, as measured in software development terms. (Just remember that software projects are never completed on schedule, and FreshFish has wisely chosen not to even try to predict when it will be ready. It could be tomorrow or three months from now.)

Grumpy is right, sometimes you need to wait a few frames after a cell load for the NPC disable/enable trick to make them substantial. I've never seen it take more than two extra frames, but that doesn't mean is wouldn't happen occasionally. If it's really an issue, you can also just issue a "FixMe" command which will force a reload of the cell and automatically reset the collision settings.
TopReport Post
User is offlinePMEmail Poster
+Quote Post
Illtempered
post Jan 14 2005, 04:06 AM
Post #44


Diviner
***

Joined: 5-March 04



Wow, this is exciting. Oh, the possibilities...

Can the script extender be used to give the PC new animations, or moves? If so, I want to be able to knock an enemy down with the but of my sword, then disarm them. And, I want to be able to lock doors, for the MP mod.


--------------------
TopReport Post
User is offlinePMEmail Poster
+Quote Post
Beryllium
post Jan 14 2005, 07:08 PM
Post #45


Curate
*

Joined: 9-April 03



QUOTE(Illtempered @ Jan 14 2005, 08:16 PM)
Wow, this is exciting.  Oh, the possibilities...

Can the script extender be used to give the PC new animations, or moves?  If so, I want to be able to knock an enemy down with the but of my sword, then disarm them.  And, I want to be able to lock doors, for the MP mod.
*

The animations are part of the .nif file, and making those has been the cause of any amount of blood sweat and tears.

Maybe MWSE could simplify the triggering of existing animations, but at the moment it only supports the same commands as standard scripting, as far as animations go.
TopReport Post
User is offlinePMEmail Poster
+Quote Post
BungaDunga
post Jan 14 2005, 09:41 PM
Post #46


Diviner
***

Joined: 30-August 04



QUOTE(cdcooley @ Jan 13 2005, 09:56 PM)
And FreshFish has given me the secret for making xGetPCTarget work.  The error is in the compiler code not the extender itself.  So if you're brave enough to hex edit the your esp, you can use it now.  If not, just wait a little while longer for the next release.  It shouldn't be too long now, as measured in software development terms.  (Just remember that software projects are never completed on schedule, and FreshFish has wisely chosen not to even try to predict when it will be ready.  It could be tomorrow or three months from now.)
*



Same with the xPlaceItem- it was MWEdit not compiling it as the right opcode. Mind telling us what we need to hexedit to get it to work? Now if only FreshFish can get it to compile FixMe...


--------------------
[REL] Better Portable Containers
QUOTE(qarl @ Dec 20 2004, 07:47 PM)
-The PC is to the Xbox as a man is to a eunuch.

Give a man a fire and he will be warm for the day, but light a man on fire and he will be warm for the rest of his life.
TopReport Post
User is offlinePMEmail Poster
+Quote Post
cdcooley
post Jan 15 2005, 03:42 AM
Post #47


Adept


Joined: 3-May 04



QUOTE(BungaDunga @ Jan 14 2005, 08:51 PM)
Same with the xPlaceItem- it was MWEdit not compiling it as the right opcode. Mind telling us what we need to hexedit to get it to work? Now if only FreshFish can get it to compile FixMe...
*



The 3c19 should be 3c07. (Or 193c/073c using the little-endian order.)

And I now have a MWSE version of the Better Portable Containers scripts. They are shorter, work in interiors as well as exteriors, and run faster. What could be better? Remember all of the time and effort you spent getting my Thu'um script working with the player movement code? Well, it's all obsolete for anyone willing to run the Script Extender. Amazing.
TopReport Post
User is offlinePMEmail Poster
+Quote Post
Beryllium
post Jan 15 2005, 04:14 AM
Post #48


Curate
*

Joined: 9-April 03



QUOTE(Beryllium @ Jan 14 2005, 05:00 PM)
I'd still like to help FF or whoever is interested extending MWSE to cover all versions... but I still don't know how.
*


I've figured that it is possible to recognise some of the breakpoints in some of the versions, given the correct breakpoints in two of them.
Here is the first one

Entry point:- fixUpScriptBreak
version - address - version description
1.? - 0xE9A50 - original install version
1.2.0722 - 0xF4CF0 - first patch
1.3.1029 - 0xF8690 - Tribunal install
1.4.1313 - 0xFAD60- Tribunal patch
1.5.1629 - 0xFDA40 - Bloodmoon install
1.6.1820 - 0xFDB00 - Bloodmoon patch


Entry point:- FixUpPlayer
version - address
1.? - maybe 0xE9F7E
1.2.0722 - maybe 0xF51F5
1.3.1029 - 0xF8BEA
1.4.1313 - 0xFB2BA
1.5.1629 - 0xFE05A
1.6.1820 - 0xF51F5

I'm trying to come up with something better than 'maybe'
These equivalents were worked out by just looking at the code and using common sense, but I'm looking for better tools than that before continuing.

Edit:- I wonder if the game of the year version is different.

This post has been edited by Beryllium: Jan 15 2005, 04:16 AM
TopReport Post
User is offlinePMEmail Poster
+Quote Post
BungaDunga
post Jan 15 2005, 08:48 PM
Post #49


Diviner
***

Joined: 30-August 04



QUOTE(cdcooley @ Jan 14 2005, 11:52 PM)
The 3c19 should be 3c07.  (Or 193c/073c using the little-endian order.)

And I now have a MWSE version of the Better Portable Containers scripts.  They are shorter, work in interiors as well as exteriors, and run faster.  What could be better? Remember all of the time and effort you spent getting my Thu'um script working with the player movement code?  Well, it's all obsolete for anyone willing to run the Script Extender.  Amazing.
*



Good to hear you managed to get xPositionCell to work properly- I never got it to behave quite right. Feel free to release them as an addon to my mod- make another esp which just overrides the scripts in the original.


--------------------
[REL] Better Portable Containers
QUOTE(qarl @ Dec 20 2004, 07:47 PM)
-The PC is to the Xbox as a man is to a eunuch.

Give a man a fire and he will be warm for the day, but light a man on fire and he will be warm for the rest of his life.
TopReport Post
User is offlinePMEmail Poster
+Quote Post
Raveren
post Jan 17 2005, 09:18 PM
Post #50


Curate
*

Joined: 21-December 04
From: Far out



much more than a bump..

I assume freshfish will (sooner or later) read this.. So, I have another request (plea) for the next version of mwse, xGetEquiped and xEquip (to allow these two to accept variables) I just threw out another mod when realised there are no such functions...

(xMessagebox!!!) ;)


--------------------
Possible:
1) Able to be done or achieved, or able to exist
2) MWScriptExtender0.9p3(with fixed xGetPCTarget *UPDATED*)

MWSE demo plugin by cdcooley
TopReport Post
User is offlinePMEmail Poster
+Quote Post
BungaDunga
post Jan 18 2005, 12:26 AM
Post #51


Diviner
***

Joined: 30-August 04



Just a small update, I've been being lazy and not modding recently, been playing Lothavor's Legacy- a great example of scripting. Once I finish off the big baddie I'll see about making a script that will grab every item in a given cell, and drop them into a container at the player's feet. I'll have it use cdcooley's portable container scripts. I'll see about maybe even grabbing all the items from containers in the cell- that should be possible as well. I envision this as a "travel case" for those who want to move house without having to take ages ransacking it. It would also be a major cheat for thieves, but there's no way to limit it to "legitimate" uses.

Also, dynamic generation of new portable containers ought to be possible- I'll have to experiment. I haven't got xPlaceItem to work- even using the "fixed" compiler exe, and I think I would need to use that.

Another request for FreshFish- I would love a command to check what item a given npc has equipped in whichever slot you choose. For example, something like GetSlotItem, "helm" which would return the id of the equipped helm. A sped-up GetSpellEffects would be awesome, too. Arrays would be nice, but they can be approximated with external files, which cdcooley used for his follower-teleportation scripts.

This post has been edited by BungaDunga: Jan 18 2005, 12:27 AM


--------------------
[REL] Better Portable Containers
QUOTE(qarl @ Dec 20 2004, 07:47 PM)
-The PC is to the Xbox as a man is to a eunuch.

Give a man a fire and he will be warm for the day, but light a man on fire and he will be warm for the rest of his life.
TopReport Post
User is offlinePMEmail Poster
+Quote Post
Beryllium
post Jan 18 2005, 05:46 AM
Post #52


Curate
*

Joined: 9-April 03



QUOTE(BungaDunga @ Jan 18 2005, 04:36 PM)
... I haven't got xPlaceItem to work- even using the "fixed" compiler exe, and I think I would need to use that....
*


You have a compiler that uses the right opcode for xPlaceItem?
Last I heard we were waiting for that, but could hex edit the mods in the meantime.
TopReport Post
User is offlinePMEmail Poster
+Quote Post
Beryllium
post Jan 21 2005, 05:39 AM
Post #53


Curate
*

Joined: 9-April 03



The main English versions of Morrowind are 1.2.0722, 1.4.1313 and 1.6.1820, and I have all of these and can advise on their differences.

But there is also a German version 1.2.0812
and a French version 1.2.0813
neither of which I have, although I have been able to locate a Fr.1.2.013 patch on a P2P network.

For universal coverage, the script extender will have to work with all of these... within the limitations, naturally, that the early ones don't have the Bloodmoon op-codes.
TopReport Post
User is offlinePMEmail Poster
+Quote Post
The_Silent_Pyro
post Jan 21 2005, 10:55 PM
Post #54


Disciple
**

Joined: 15-August 04
From: thesilentpyro.proboards43.com



Okay some requests from me:

Put a script on all items of a type. E.G., a script on all weapons without having to manually do it in CS.

xGetWeight--returns the weight of the item

xGetColliding--returns true if the item is colliding with something

xGetOwner--returns the owner of the item

MAKE FALL WORK ON NON-CHARACTER OBJECTS PLEASE!

Probably more requests to come.


--------------------
Sarchasm: The gulf between the author of sarcastic wit and the person who doesn't get it.

Pong--My version of Pong, using Visual Basic. Also, Pyro Wars is in the making. Post your suggestions on my site.
TopReport Post
User is offlinePMEmail Poster
+Quote Post
cdcooley
post Jan 22 2005, 01:28 AM
Post #55


Adept


Joined: 3-May 04



QUOTE(The_Silent_Pyro @ Jan 21 2005, 10:05 PM)
Okay some requests from me:
*


Unfortunately, I suspect that most (and maybe all) of those aren't possible. Even if they are possible, they may be too hard for anyone to be willing to get them working. On the other hand, don't stop with ideas.

This post has been edited by cdcooley: Jan 22 2005, 01:30 AM
TopReport Post
User is offlinePMEmail Poster
+Quote Post
BungaDunga
post Jan 22 2005, 01:37 AM
Post #56


Diviner
***

Joined: 30-August 04



QUOTE(cdcooley @ Jan 21 2005, 09:38 PM)
Unfortunately, I suspect that most (and maybe all) of those aren't possible.  Even if they are possible, they may be too hard for anyone to be willing to get them working.  On the other hand, don't stop with ideas.
*



The weight/owner ones ought to be possible- they have to be stored in some fashion, so MWSE ought to be able to retrieve them.


--------------------
[REL] Better Portable Containers
QUOTE(qarl @ Dec 20 2004, 07:47 PM)
-The PC is to the Xbox as a man is to a eunuch.

Give a man a fire and he will be warm for the day, but light a man on fire and he will be warm for the rest of his life.
TopReport Post
User is offlinePMEmail Poster
+Quote Post
Beryllium
post Jan 22 2005, 02:37 AM
Post #57


Curate
*

Joined: 9-April 03



QUOTE(BungaDunga @ Jan 22 2005, 05:47 PM)
QUOTE
Unfortunately, I suspect that most (and maybe all) of those aren't possible.  Even if they are possible, they may be too hard for anyone to be willing to get them working.  On the other hand, don't stop with ideas.

The weight/owner ones ought to be possible- they have to be stored in some fashion, so MWSE ought to be able to retrieve them.
*


Yes, theoretically. It's only common sense. The extender could be extended to include get and set commands for anything that you can set up in TES-CS. I wonder if it would even be possible to create uniquely new objects, creatures or NPCs via scripting. Such additional things would be stored in your saved game, like the doubling bug, except that there would only be the double and no original. You'd have to be careful how you cleaned your saved game or you'd loose them.

This post has been edited by Beryllium: Jan 22 2005, 02:44 AM
TopReport Post
User is offlinePMEmail Poster
+Quote Post
The_Silent_Pyro
post Jan 22 2005, 09:21 AM
Post #58


Disciple
**

Joined: 15-August 04
From: thesilentpyro.proboards43.com



Yeah, I know they have to be stored somewhere. For the owner ones, I'd be happy if I could tell simply if something didn't belong to the player.

I think that starting a script on all items of a type is possible too. That information is stored somewhere as well. the command would be like xStartScriptIT, (item type), (script ID). At least, I sincerely hope this is possible. Or at least to start a script on EVERYTHING and then to detect what item type it is. I.E. xStartScriptAll, (script name) then xGetObjectType.

The xGetColliding I didn't have much hope for. I think I can do it, but it's a major pain in the spotted owl.

Edit: Added the xGetColliding part and fixed typos.

This post has been edited by The_Silent_Pyro: Jan 22 2005, 09:23 AM


--------------------
Sarchasm: The gulf between the author of sarcastic wit and the person who doesn't get it.

Pong--My version of Pong, using Visual Basic. Also, Pyro Wars is in the making. Post your suggestions on my site.
TopReport Post
User is offlinePMEmail Poster
+Quote Post
The_Silent_Pyro
post Jan 22 2005, 09:58 AM
Post #59


Disciple
**

Joined: 15-August 04
From: thesilentpyro.proboards43.com



I can't seem to download the link from the first page. Anyone got any clues? Will take an e-mail. I'll send a PM to anyone who offers.


--------------------
Sarchasm: The gulf between the author of sarcastic wit and the person who doesn't get it.

Pong--My version of Pong, using Visual Basic. Also, Pyro Wars is in the making. Post your suggestions on my site.
TopReport Post
User is offlinePMEmail Poster
+Quote Post
Raveren
post Jan 22 2005, 10:42 AM
Post #60


Curate
*

Joined: 21-December 04
From: Far out



QUOTE(The_Silent_Pyro @ Jan 22 2005, 03:31 PM)
I think that starting a script on all items of a type is possible too.  That information is stored somewhere as well.  the command would be like xStartScriptIT, (item type), (script ID).  At least, I sincerely hope this is possible.  Or at least to start a script on EVERYTHING and then to detect what item type it is.  I.E. xStartScriptAll, (script name) then xGetObjectType.
*



that, in my knowledge, is possible via both mwe and mwse, however (I think you have your better telekinesis mod in mind) you can't determine a certain generic object: both script extenders can cycle through all objects around the player and do various actions with them, including starting a script on em, but (currently) you can't (comfortably) pick a certain one of multiple items with the same ID.


--------------------
Possible:
1) Able to be done or achieved, or able to exist
2) MWScriptExtender0.9p3(with fixed xGetPCTarget *UPDATED*)

MWSE demo plugin by cdcooley
TopReport Post
User is offlinePMEmail Poster
+Quote Post
The_Silent_Pyro
post Jan 22 2005, 10:58 AM
Post #61


Disciple
**

Joined: 15-August 04
From: thesilentpyro.proboards43.com



QUOTE(Raveren @ Jan 22 2005, 10:52 AM)
that, in my knowledge, is possible via both mwe and mwse, however (I think you have your better telekinesis mod in mind) you can't determine a certain generic object: both script extenders can cycle through all objects around the player and do various actions with them, including starting a script on em, but (currently) you can't (comfortably) pick a certain one of multiple items with the same ID.
*


Yes, I am thinking of my Improved Telekinesis. Now, would you mind explaining all that again? I want to have a script run on all pickupable items, and from the looks of it, to do this I have to be able to determine what kind of item they are (weapon, book, etc.). Are you trying to tell me that there is a way to do this?


--------------------
Sarchasm: The gulf between the author of sarcastic wit and the person who doesn't get it.

Pong--My version of Pong, using Visual Basic. Also, Pyro Wars is in the making. Post your suggestions on my site.
TopReport Post
User is offlinePMEmail Poster
+Quote Post
Raveren
post Jan 22 2005, 01:10 PM
Post #62


Curate
*

Joined: 21-December 04
From: Far out



QUOTE(The_Silent_Pyro @ Jan 22 2005, 05:08 PM)
Yes, I am thinking of my Improved Telekinesis.  Now, would you mind explaining all that again?  I want to have a script run on all pickupable items, and from the looks of it, to do this I have to be able to determine what kind of item they are (weapon, book, etc.).  Are you trying to tell me that there is a way to do this?
*



look in your thread. I've put the script there

This post has been edited by Raveren: Jan 22 2005, 01:16 PM


--------------------
Possible:
1) Able to be done or achieved, or able to exist
2) MWScriptExtender0.9p3(with fixed xGetPCTarget *UPDATED*)

MWSE demo plugin by cdcooley
TopReport Post
User is offlinePMEmail Poster
+Quote Post
cdcooley
post Jan 22 2005, 02:28 PM
Post #63


Adept


Joined: 3-May 04



QUOTE(The_Silent_Pyro @ Jan 22 2005, 09:08 AM)
I can't seem to download the link from the first page.  Anyone got any clues?  Will take an e-mail.  I'll send a PM to anyone who offers.
*


I've edited the first post, but thought I should reply too. Verizon is significantly less reliable than reasonable. I've put up yet another alternate link.

MWSEdemo.zip

It seems I need to find a new ISP. Despite their claims, Verizon's "SPAM blocking" efforts includes blocking most automated e-mail. Now that they have finally admitted I know why I can't even complete my account creation at TESMods and other upload sites. It's only through manual intervention by the Bethesda folks that I can get to the forums here.

This post has been edited by cdcooley: Jan 22 2005, 02:30 PM
TopReport Post
User is offlinePMEmail Poster
+Quote Post
BungaDunga
post Jan 22 2005, 02:52 PM
Post #64


Diviner
***

Joined: 30-August 04



Hmm, cdcooley, would you be interested in a GMail invite? Essentially infinate space- though it does not like sending executables, even when you try to trick it by putting them in a zip. It has good spamblocking too. The search features are very nice, and its easy to categorize incoming mail automatically.


--------------------
[REL] Better Portable Containers
QUOTE(qarl @ Dec 20 2004, 07:47 PM)
-The PC is to the Xbox as a man is to a eunuch.

Give a man a fire and he will be warm for the day, but light a man on fire and he will be warm for the rest of his life.
TopReport Post
User is offlinePMEmail Poster
+Quote Post
Beryllium
post Jan 22 2005, 04:51 PM
Post #65


Curate
*

Joined: 9-April 03



QUOTE(The_Silent_Pyro @ Jan 23 2005, 03:08 AM)
Yes, I am thinking of my Improved Telekinesis.  Now, would you mind explaining all that again?  I want to have a script run on all pickupable items, and from the looks of it, to do this I have to be able to determine what kind of item they are (weapon, book, etc.).  Are you trying to tell me that there is a way to do this?
*


Pasrdon for butting in but I see you comparing MWE with MWSE.
The last I heard of MWE was that it didn't have documentation or a development system.
Has that changed? and if so where can I get it.

I'm wondering, too, if the source code is included and if it is easier to understand than MWSE.

Thanks
TopReport Post
User is offlinePMEmail Poster
+Quote Post
BungaDunga
post Jan 22 2005, 05:16 PM
Post #66


Diviner
***

Joined: 30-August 04



QUOTE(Beryllium @ Jan 22 2005, 01:01 PM)
Pasrdon for butting in but I see you comparing MWE with MWSE.
The last I heard of MWE was that it didn't have documentation or a development system.
Has that changed?  and if so where can I get it.

I'm wondering, too, if the source code is included and if it is easier to understand than MWSE.

Thanks
*



It does have some limited documentation, and a working compiler- you can find both on the MWE forums. It is not as easy to use as MWSE, however. For example:

To call a function- for example, NextLiving- in MWE, you have to do something like this:

ToggleWorld ;NextLiving

Which gets compiled into just the commented command by the compiler. To pass data to MWE you have to use a set of 10 or so variables. It also doesn't add psuedo variable types like MWSE does ( Ref, String ). On the other hand it doesn't require you to use an xif type function, so writing state-variable controlled scripts is rather easier, since you are not limited by the simplicity of xIf.

MWE has an awful lot of hardcoding- it really was made for the mods Aerelorn made that used it. For example, theres no way to detect keypresses except for triggering trance. MWE can edit in-game objects though, as seen in Writing Enhanced/Journal Enhanced. I am not sure how hardcoded that is. It can also edit the strength of spells on a per-effect basis.


--------------------
[REL] Better Portable Containers
QUOTE(qarl @ Dec 20 2004, 07:47 PM)
-The PC is to the Xbox as a man is to a eunuch.

Give a man a fire and he will be warm for the day, but light a man on fire and he will be warm for the rest of his life.
TopReport Post
User is offlinePMEmail Poster
+Quote Post
BungaDunga
post Jan 22 2005, 07:06 PM
Post #67


Diviner
***

Joined: 30-August 04



Good news!

I can finally open mods with MWEditSE! I don't know why, but it has stopped crashing when I tell it to open anything. I have no excuses not to get something done now ^_^


--------------------
[REL] Better Portable Containers
QUOTE(qarl @ Dec 20 2004, 07:47 PM)
-The PC is to the Xbox as a man is to a eunuch.

Give a man a fire and he will be warm for the day, but light a man on fire and he will be warm for the rest of his life.
TopReport Post
User is offlinePMEmail Poster
+Quote Post
Max_aka_NOBODY
post Jan 22 2005, 07:21 PM
Post #68


Diviner
***

Joined: 3-December 03
From: Vivec, Jobasha's Rare Books



A bit offtopic maybe, but how's the progress with FreshFish. I had an idea when I first DLed MWSE, but since the xGetPCTarget function doesn't work, it's useless for that now... And almost anything else I have on my mind seem to be too much for it to handle... :hehe:


--------------------
The LGNPC Project
TES4.com

My mods:

Vivid MW Repaint
Morrowind Photographer
The Roads to Heaven
Complete Morrowind
Windows Glow
Reflective Gold
Death
Readable Books
...
TopReport Post
User is offlinePMEmail Poster
+Quote Post
cdcooley
post Jan 23 2005, 08:21 PM
Post #69


Adept


Joined: 3-May 04



The xRefType function returns a "long" variable value that contains the type of the object reference. The number is just the (little-endian) numerical interpretation of the four-character name of that type. Since most of us can't convert them in our heads, I've made a list of values for each of the object types in an ESM/ESP file.

TES3 = 861095252 (Main Header)
ACTI = 1230259009 (Activator)
ALCH = 1212369985 (Alchemy)
APPA = 1095782465 (Alchemy Apparatus)
ARMO = 1330467393 (Armour)
BODY = 1497648962 (Body Parts)
BOOK = 1263488834 (Books)
BSGN = 1313297218 (Birth Sign)
CELL = 1280066883 (Cell Definitions)
CLAS = 1396788291 (Class Definition)
CLOT = 1414483011 (Clothing)
CONT = 1414418243 (Containers)
CREA = 1095062083 (Creatures)
DIAL = 1279347012 (Dialogue topic)
DOOR = 1380929348 (Door Definition)
ENCH = 1212370501 (Enchanting Effects)
FACT = 1413693766 (Faction Definition)
GLOB = 1112493127 (Global Variable)
GMST = 1414745415 (Game Setting)
INFO = 1330007625 (Dialogue response)
INGR = 1380404809 (Ingrediants)
LAND = 1145979212 (Landscape)
LEVC = 1129727308 (Levelled Creatures)
LEVI = 1230390604 (Levelled Items)
LIGH = 1212631372 (Lights)
LOCK = 1262702412 (Lockpicking Items)
LTEX = 1480938572 (Land Texture)
MGEF = 1178945357 (Magic Effect)
MISC = 1129531725 (Misc Items)
NPC_ = 1598246990 (NPCs)
PGRD = 1146242896 (Path Grid)
PROB = 1112494672 (Probe Items)
RACE = 1162035538 (Race Definition)
REGN = 1313293650 (Region)
REPA = 1095779666 (Repair Items)
SCPT = 1414546259 (Script)
SKIL = 1279871827 (Skill)
SNDG = 1195658835 (Sound Generator)
SOUN = 1314213715 (Sound)
SPEL = 1279610963 (Spells)
STAT = 1413567571 (Static)
WEAP = 1346454871 (Weapons)

No, I didn't do that by hand. I ran the codes from Dave Humphrey's ESM format documentation through a little script. I don't think you can actually get a reference to all of these, just ignore the ones you don't want or need.

The irony is that when you are hand-compiling the code, you just put the four characters, but when you use the MWEditSE compiler you have to use the number.

(I decided to add a couple of lines to my script to pull the description of those four-letter codes since Dave put it on the next line in an easy to find spot.)

This post has been edited by cdcooley: Jan 23 2005, 08:41 PM
TopReport Post
User is offlinePMEmail Poster
+Quote Post
Raveren
post Jan 23 2005, 08:28 PM
Post #70


Curate
*

Joined: 21-December 04
From: Far out



my sincere thanks!

edit: deleted the whole list quote, sorry :)

This post has been edited by Raveren: Jan 23 2005, 08:36 PM


--------------------
Possible:
1) Able to be done or achieved, or able to exist
2) MWScriptExtender0.9p3(with fixed xGetPCTarget *UPDATED*)

MWSE demo plugin by cdcooley
TopReport Post
User is offlinePMEmail Poster
+Quote Post
BungaDunga
post Jan 23 2005, 08:32 PM
Post #71


Diviner
***

Joined: 30-August 04



QUOTE(Raveren @ Jan 23 2005, 04:38 PM)
my sincere thanks!
*



Mind editing the list out of your post? It clutters up the thread a bit.

And yes, this shall prove very useful ^_^


--------------------
[REL] Better Portable Containers
QUOTE(qarl @ Dec 20 2004, 07:47 PM)
-The PC is to the Xbox as a man is to a eunuch.

Give a man a fire and he will be warm for the day, but light a man on fire and he will be warm for the rest of his life.
TopReport Post
User is offlinePMEmail Poster
+Quote Post
cdcooley
post Jan 23 2005, 09:37 PM
Post #72


Adept


Joined: 3-May 04



QUOTE(Max_aka_NOBODY @ Jan 22 2005, 06:31 PM)
A bit offtopic maybe, but how's the progress with FreshFish. I had an idea when I first DLed MWSE, but since the xGetPCTarget function doesn't work, it's useless for that now... And almost anything else I have on my mind seem to be too much for it to handle... :hehe:
*


The xGetPCTarget function itself works just fine. The compiler just generates the wrong opcode for it. So if you really want to use it, just write the script and then edit the esp to substitute the correct value in the compiled script. It's easy enough, just open the file in the Enchanted Editor and expand the "Compiled Script" section and find the number 25 followed by the number 60. Change the 25 into a 7 and save. If you use a hex-edit program, the numbers would be 19 followed by 3C and you change the 19 to 07.

You could also hex-edit the MWEditSE.exe program itself. The magic 193C value is only in there once, so changing it to 073C will make it generate the correct code in your scripts.
TopReport Post
User is offlinePMEmail Poster
+Quote Post
Raveren
post Jan 23 2005, 09:41 PM
Post #73


Curate
*

Joined: 21-December 04
From: Far out



QUOTE(cdcooley @ Jan 24 2005, 03:47 AM)
The xGetPCTarget function itself works just fine.  The compiler just generates the wrong opcode for it.  So if you really want to use it, just write the script and then edit the esp to substitute the correct value in the compiled script.  It's easy enough, just open the file in the Enchanted Editor and expand the "Compiled Script" section and find the number 25 followed by the number 60.  Change the 25 into a 7 and save.    If you use a hex-edit program, the numbers would be 19 followed by 3C and you change the 19 to 07.

You could also hex-edit the MWEditSE.exe program itself.  The magic 193C value is only in there once, so changing it to 073C will make it generate the correct code in your scripts.
*



ARE YOU SPEAKING SERIOUSLY HERE???? OMG OMG OMG!!! OMFG!!! I LOVE YOU!!! I promise something huge tomorrow, the better rotate demo perhaps!!!


--------------------
Possible:
1) Able to be done or achieved, or able to exist
2) MWScriptExtender0.9p3(with fixed xGetPCTarget *UPDATED*)

MWSE demo plugin by cdcooley
TopReport Post
User is offlinePMEmail Poster
+Quote Post
BungaDunga
post Jan 23 2005, 09:42 PM
Post #74


Diviner
***

Joined: 30-August 04



QUOTE(Raveren @ Jan 23 2005, 05:51 PM)
ARE YOU SPEAKING SERIOUSLY HERE???? OMG OMG OMG!!! OMFG!!! I LOVE YOU!!! I promise something huge tomorrow, the better rotate demo perhaps!!!
*



cdcooley to the rescue :D He seriously deserves a shrine of some kind...


--------------------
[REL] Better Portable Containers
QUOTE(qarl @ Dec 20 2004, 07:47 PM)
-The PC is to the Xbox as a man is to a eunuch.

Give a man a fire and he will be warm for the day, but light a man on fire and he will be warm for the rest of his life.
TopReport Post
User is offlinePMEmail Poster
+Quote Post
Raveren
post Jan 23 2005, 10:16 PM
Post #75


Curate
*

Joined: 21-December 04
From: Far out



CODE
begin tet

long ItemRef

setx ItemRef to xGetPCTarget

ifx (itemref)
messagebox "it friggin works"
endif

end


IT FRIGGIN WORKS!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
:bowdown: :bowdown: :bowdown: :bowdown: :bowdown:


--------------------
Possible:
1) Able to be done or achieved, or able to exist
2) MWScriptExtender0.9p3(with fixed xGetPCTarget *UPDATED*)

MWSE demo plugin by cdcooley
TopReport Post
User is offlinePMEmail Poster
+Quote Post
cdcooley
post Jan 23 2005, 10:23 PM
Post #76


Adept


Joined: 3-May 04



Raveren,

You are so easy to please.

Here are some test scripts I wrote a few weeks ago to experiment with xGetRef, xGetPCTarget, and the idea of starting targeted scripts on objects the player has targeted. This combo forces NPCs to talk to the player. Another pair, gave an inventory of all containers, NPCs, and Creatures to the log file (but I've managed to overwrite that one with a non-working version). The script will activate once for each time you sneak. You can sneak and then walk around, but the first time you target something the script will activate. If you sneak while looking at something, it activates as soon as you stop sneaking. (Without the sneak checks, you get a nasty infinite ForceGreeting, locking up the game unless you "coc" or disable the person you were talking to during the dialog.)

CODE
begin stt ; short name because I have to type it in the console

short state
long target

if ( state == 0 )
   if ( GetPCSneaking == 1 )
       set state to 1
   endif
   return
elseif ( state == 1 )
   if ( GetPCSneaking == 0 )
       set state to 2
   endif
   return
elseif ( ScriptRunning show_type_and_talk == 1 )
   set state to 0
   return
endif

setx target to xGetPCTarget
ifx ( target )
   xSetRef target
   startscript show_type_and_talk
   set state to 0
endif

end


CODE
begin show_type_and_talk

long ttype

setx ttype to xRefType

MessageBox "%.0f" ttype

if ( ttype == 1598246990 )  ; NPC_
   ForceGreeting
endif

stopscript show_type_and_talk

end



I did find something interesting. If someone is in combat with you, you can't "target" them with xGetPCTarget. That seems a little strange, but I suppose it's related to your inability to activate them normally during combat. If you have them knocked down to the ground, you can target them, but the forcegreeting doesn't work.
TopReport Post
User is offlinePMEmail Poster
+Quote Post
Max_aka_NOBODY
post Jan 23 2005, 11:04 PM
Post #77


Diviner
***

Joined: 3-December 03
From: Vivec, Jobasha's Rare Books



Oooooh! That's great! After LGNPC Pelagiad I'll start trying what I had in mind.


--------------------
The LGNPC Project
TES4.com

My mods:

Vivid MW Repaint
Morrowind Photographer
The Roads to Heaven
Complete Morrowind
Windows Glow
Reflective Gold
Death
Readable Books
...
TopReport Post
User is offlinePMEmail Poster
+Quote Post
Raveren
post Jan 23 2005, 11:09 PM
Post #78


Curate
*

Joined: 21-December 04
From: Far out



QUOTE(Max_aka_NOBODY @ Jan 24 2005, 05:14 AM)
Oooooh! That's great! After LGNPC Pelagiad I'll start trying what I had in mind.
*



Whoa!! (I'm so easily excited in late evenings ;) )

Sylent_pyro will be glad to continue on better telekinesis too!


--------------------
Possible:
1) Able to be done or achieved, or able to exist
2) MWScriptExtender0.9p3(with fixed xGetPCTarget *UPDATED*)

MWSE demo plugin by cdcooley
TopReport Post
User is offlinePMEmail Poster
+Quote Post
cdcooley
post Jan 23 2005, 11:36 PM
Post #79


Adept


Joined: 3-May 04



QUOTE(Raveren @ Jan 23 2005, 10:19 PM)
Possible:
1) Able to be done or achieved, or able to exist;
2) MWScriptExtender(with fixed xGetPCTarget).
*



Would you please stick some sort of version number on that release? There are already too many un-labeled versions floating around as it is. This is at least the 3rd patch to version of what could be called the 0.9 release of the extender. I recommend adding 0.9p3 for your version and it would be nice if you stuck a note in the top of that archive telling what you changed from the previous version.

Having multiple versions with the same package name and unclear versioning documentation is going to make it very confusing for people to actually use MWSE mods. It will also make it a nightmare to help them when things go wrong.

QUOTE
Whoa!! (I'm so easily excited in late evenings)

Lithuania? I'd say you're well past late evening.

This post has been edited by cdcooley: Jan 23 2005, 11:43 PM
TopReport Post
User is offlinePMEmail Poster
+Quote Post
Raveren
post Jan 23 2005, 11:44 PM
Post #80


Curate
*

Joined: 21-December 04
From: Far out



QUOTE(cdcooley @ Jan 24 2005, 05:46 AM)
Would you please stick some sort of version number on that release?  There are already too many un-labeled versions floating around as it is.  This is at least the 3rd patch to version of what could be called the 0.9 release of the extender.    I recommend adding 0.9p3 or  for your version and it would be nice if you stuck a note in the top of that archive telling what you changed from the previous version.

Having multiple versions with the same package name and unclear versioning documentation is going to make it very confusing for people to actually use MWSE mods.  It will also make it a nightmare to help them when things go wrong.
*



Done, as you see. Damn sig length limit, had to disable some colors >;)

btw I included the get reference codes in the mwedit se documentation (with credits to you)


--------------------
Possible:
1) Able to be done or achieved, or able to exist
2) MWScriptExtender0.9p3(with fixed xGetPCTarget *UPDATED*)

MWSE demo plugin by cdcooley
TopReport Post
User is offlinePMEmail Poster
+Quote Post
cdcooley
post Jan 23 2005, 11:50 PM
Post #81


Adept


Joined: 3-May 04



QUOTE(Raveren @ Jan 23 2005, 10:54 PM)
Done, as you see. Damn sig length limit, had to disable some colors >;)

btw I included the get reference codes in the mwedit se documentation (with credits to you)
*



That was fast. Thank you. I'm sure we'll all appreciate your sacrifice of color in the weeks ahead. Now, shouldn't you be in bed? It has been dark in Lithuania for many hours now. In a smaller number, it will be light again.
TopReport Post
User is offlinePMEmail Poster
+Quote Post
Raveren
post Jan 23 2005, 11:51 PM
Post #82


Curate
*

Joined: 21-December 04
From: Far out



QUOTE(Raveren @ Jan 24 2005, 05:54 AM)
Done, as you see. Damn sig length limit, had to disable some colors >;)

btw I included the get reference codes in the mwedit se documentation (with credits to you)
*




edit:
QUOTE
Lithuania? I'd say you're well past late evening.

Yeah, it's already early here, couldn't draw myself away, and now I have two more hours and I have to go to go out.. What's the point in sleeping :)

actual edit: :D :D yeah, I should have gone to bed, pushed reply instead of edit :D lol

edit again: my guess is cdcooley is russian :) heh, I wouldn't lift an eyebrow, fpu-to-sse, fps optimiser are made by em(russians), wonder where is FreshFish from :)

one last edit: should you be lithuanian, I'm flattered (wrong word, whateva:) )! (almost clicked reply again %) )



This post has been edited by Raveren: Jan 24 2005, 12:06 AM


--------------------
Possible:
1) Able to be done or achieved, or able to exist
2) MWScriptExtender0.9p3(with fixed xGetPCTarget *UPDATED*)

MWSE demo plugin by cdcooley
TopReport Post
User is offlinePMEmail Poster
+Quote Post
BungaDunga
post Jan 24 2005, 12:39 AM
Post #83


Diviner
***

Joined: 30-August 04



I believe cdcooley is american - his local time on his profile corresponds exactly to EST. As for FreshFish, his timezone seems to be in Hong Kong.

Edit: He could be canadian, too.

This post has been edited by BungaDunga: Jan 24 2005, 12:46 AM


--------------------
[REL] Better Portable Containers
QUOTE(qarl @ Dec 20 2004, 07:47 PM)
-The PC is to the Xbox as a man is to a eunuch.

Give a man a fire and he will be warm for the day, but light a man on fire and he will be warm for the rest of his life.
TopReport Post
User is offlinePMEmail Poster
+Quote Post
BungaDunga
post Jan 24 2005, 02:15 AM
Post #84


Diviner
***

Joined: 30-August 04



Ergh. I can't get xAddItem to work. Cdcooley, you mentioned that you had a fixed compiler that would compile it correctly- is there a simple hex fix to get it to work right?


--------------------
[REL] Better Portable Containers
QUOTE(qarl @ Dec 20 2004, 07:47 PM)
-The PC is to the Xbox as a man is to a eunuch.

Give a man a fire and he will be warm for the day, but light a man on fire and he will be warm for the rest of his life.
TopReport Post
User is offlinePMEmail Poster
+Quote Post
The_Silent_Pyro
post Jan 24 2005, 05:21 PM
Post #85


Disciple
**

Joined: 15-August 04
From: thesilentpyro.proboards43.com



Wow, I wished I hadn't missed this. Now, to get to work on improved telekinesis. Does anyone know how to detect owner or weight?


--------------------
Sarchasm: The gulf between the author of sarcastic wit and the person who doesn't get it.

Pong--My version of Pong, using Visual Basic. Also, Pyro Wars is in the making. Post your suggestions on my site.
TopReport Post
User is offlinePMEmail Poster
+Quote Post
cdcooley
post Jan 24 2005, 07:13 PM
Post #86


Adept


Joined: 3-May 04



QUOTE(BungaDunga @ Jan 24 2005, 01:25 AM)
Ergh. I can't get xAddItem to work. Cdcooley, you mentioned that you had a fixed compiler that would compile it correctly- is there a simple hex fix to get it to work right?
*


The version on Shanjaq's site has the fix and works for me.

QUOTE(The_Silent_Pyro @ Jan 24 2005, 04:31 PM)
Wow, I wished I hadn't missed this.  Now, to get to work on improved telekinesis.  Does anyone know how to detect owner or weight?
*


Unfortunately no. You might check with the MWE folks. It might support those.
TopReport Post
User is offlinePMEmail Poster
+Quote Post
Raveren
post Jan 24 2005, 09:34 PM
Post #87


Curate
*

Joined: 21-December 04
From: Far out



QUOTE(cdcooley @ Jan 25 2005, 01:23 AM)
The version on Shanjaq's site has the fix and works for me.
Unfortunately no.  You might check with the MWE folks.  It might support those.
*



the mwe forums state that the next version of mwe will support getting encumberance.

Btw there was a wip (now cancelled) of marksman enhanced, which (among other things) make arrows stuck into walls etc, so, suppose it CAN detect clipping...


--------------------
Possible:
1) Able to be done or achieved, or able to exist
2) MWScriptExtender0.9p3(with fixed xGetPCTarget *UPDATED*)

MWSE demo plugin by cdcooley
TopReport Post
User is offlinePMEmail Poster
+Quote Post
The_Silent_Pyro
post Jan 25 2005, 04:52 PM
Post #88


Disciple
**

Joined: 15-August 04
From: thesilentpyro.proboards43.com



QUOTE(Raveren @ Jan 24 2005, 09:44 PM)
the mwe forums state that the next version of mwe will support getting encumberance.

Btw there was a wip (now cancelled) of marksman enhanced, which (among other things) make arrows stuck into walls etc, so, suppose it CAN detect clipping...
*


Yeah, but I'd rather NOT use TWO external programs for one mod.


--------------------
Sarchasm: The gulf between the author of sarcastic wit and the person who doesn't get it.

Pong--My version of Pong, using Visual Basic. Also, Pyro Wars is in the making. Post your suggestions on my site.
TopReport Post
User is offlinePMEmail Poster
+Quote Post
BungaDunga
post Jan 25 2005, 08:57 PM
Post #89


Diviner
***

Joined: 30-August 04



Yay- I have successfully made a script which will zip through all the items in a cell, and drop all the ones that the player can normally pick up into a newly created box at the player's feet. Very handy for those who move houses often! I'm going to attach it to a container using cdcooley's scripts for my Portable Container mod. The box will have completely unrealistic weight after the script dumps all the items in it, but I will set its capacity very low so the player won't be able to add in any items by the normal way.

I am going to attempt to get it to loot all the containers too- it should be perfectly possible if xWhile allows nesting :shrug:


--------------------
[REL] Better Portable Containers
QUOTE(qarl @ Dec 20 2004, 07:47 PM)
-The PC is to the Xbox as a man is to a eunuch.

Give a man a fire and he will be warm for the day, but light a man on fire and he will be warm for the rest of his life.
TopReport Post
User is offlinePMEmail Poster
+Quote Post
DragoonWraith
post Jan 25 2005, 10:31 PM
Post #90


Diviner
***

Joined: 13-June 03



That would be convenient for moving around houses - I've been meaning to move out of Ra'Virr's and into the Battlespire for quite some time now, but haven't gotten around to it yet...


--------------------
"change the world..."
QUOTE(Braddock @ Oct 15 2004, 11:51 PM)
a ninja dressed like a clown is still just as stealthy, provided he's at a circus
"Blinding light, bind my foes in unbreakable chains... Disperse the shadows! Ray of Paralysis!"
~Saradin Carm

Bonus Points:
Ronin +5
NuclearDope +10
MOO_COW +20
RavynAngel +20
Case +50
TopReport Post
User is offlinePMEmail Poster
+Quote Post
Cenobite
post Jan 26 2005, 04:23 PM
Post #91


Diviner
***

Joined: 5-March 04
From: http://www.mwmythicmods.com



Correct me if I'm wrong, but is this thread also serving as a shopping list of scripting functions that we would like to see?

If yes, then: xGetPCGender = returns 1 or 0 for gender of the PC (currently this can only be done in dialogue)


--------------------
There are conditions of the nerve endings, the likes of which your imagination, no matter how fevered, could not possibly hope to evoke.
TopReport Post
User is offlinePMEmail Poster
+Quote Post
Beryllium
post Jan 26 2005, 04:42 PM
Post #92


Curate
*

Joined: 9-April 03



QUOTE(Cenobite @ Jan 27 2005, 08:33 AM)
Correct me if I'm wrong, but is this thread also serving as a shopping list of scripting functions that we would like to see?

If yes, then: xGetPCGender = returns 1 or 0 for gender of the PC (currently this can only be done in dialogue)
*


And xSetPCGender too.
Basically, get and set functions for everything. Making them is a matter of analyising the MW executable to find out where and how the data is stored and writing the functions to access them. It should be easy, and would be expected to be in the version 1 release.
TopReport Post
User is offlinePMEmail Poster
+Quote Post
Raveren
post Jan 26 2005, 05:49 PM
Post #93


Curate
*

Joined: 21-December 04
From: Far out



QUOTE(Beryllium @ Jan 26 2005, 10:52 PM)
And xSetPCGender too.
Basically, get and set functions for everything.  Making them is a matter of analyising the MW executable to find out where and how the data is stored and writing the functions to access them.  It should be easy, and would be expected to be in the version 1 release.
*




WTF????


--------------------
Possible:
1) Able to be done or achieved, or able to exist
2) MWScriptExtender0.9p3(with fixed xGetPCTarget *UPDATED*)

MWSE demo plugin by cdcooley
TopReport Post
User is offlinePMEmail Poster
+Quote Post
Beryllium
post Jan 27 2005, 03:32 AM
Post #94


Curate
*

Joined: 9-April 03



QUOTE(Raveren @ Jan 27 2005, 09:59 AM)
WTF????
*


You doubt my word?
You can find your gender, in-game, by using WinHex, Soft-ICE or some other memory browsing tool to look at a single bit. And change that bit to change your gender.
Where is that bit?
Well, we know where it is stored within the structure of a saved game, and we can single-step the MW executable as it loads up and unpacks a saved game, so this information is one of the simplest to discover.
All of the other attributes and flags are stored in memory as bitfields, integers of various sizes and strings. Finding them involves single-stepping, running under debugger with breakpoints and tracing through disassemblies, but it isn't rocket science.
TopReport Post
User is offlinePMEmail Poster
+Quote Post
Shanjaq
post Jan 27 2005, 07:44 AM
Post #95


Disciple
**

Joined: 31-July 02
From: Kudanat



thankfully the sources to both MWSE and MWEditSE are open ;)


--------------------
TopReport Post
User is offlinePMEmail Poster
+Quote Post
Raveren
post Jan 27 2005, 01:28 PM
Post #96


Curate
*

Joined: 21-December 04
From: Far out



ok I misunderstood you a bit, Beryllium. Yes I know the principal of how this program works and know the theoretical limits of it possibilities...

xSetGender would cause tons of problems btw


--------------------
Possible:
1) Able to be done or achieved, or able to exist
2) MWScriptExtender0.9p3(with fixed xGetPCTarget *UPDATED*)

MWSE demo plugin by cdcooley
TopReport Post
User is offlinePMEmail Poster
+Quote Post
Cenobite
post Jan 27 2005, 01:40 PM
Post #97


Diviner
***

Joined: 5-March 04
From: http://www.mwmythicmods.com



QUOTE(Raveren @ Jan 27 2005, 01:38 PM)
xSetGender would cause tons of problems btw

LOL...I care nothing for that, "enableracemenu" is already capable of doing that.

...

Unless you are speaking of writing a spell that would change the gender of NPCs?????

Oh the possibilities!

:rofl:


--------------------
There are conditions of the nerve endings, the likes of which your imagination, no matter how fevered, could not possibly hope to evoke.
TopReport Post
User is offlinePMEmail Poster
+Quote Post
Beryllium
post Jan 27 2005, 05:51 PM
Post #98


Curate
*

Joined: 9-April 03



QUOTE(Cenobite @ Jan 28 2005, 05:50 AM)
LOL...I care nothing for that, "enableracemenu" is already capable of doing that.

...

Unless you are speaking of writing a spell that would change the gender of NPCs?????

Oh the possibilities!

:rofl:
*


oh yes indeed... those guards should be taking all sorts of penalties because of suddenly having to squeeze their ample bodies into male armor. But I get the point. Just because we can change the data it doesn't mean that the MW engine will co-operate with us and recognise the change without problems. Anybody using extended functions should be aware that there may be side effects. That's partly what makes it so exciting. We're doing something new, and anything could happen.
TopReport Post
User is offlinePMEmail Poster
+Quote Post
cdcooley
post Jan 29 2005, 11:03 PM
Post #99


Adept


Joined: 3-May 04



I've been poking around in the code for the script extender and MWEditSE. I discovered that they the both support some math functions that aren't mentioned in the MWEditSE.txt file.


xSqrt, xHypot

The xHypot function takes to arguments and computes c = sqrt(a^2+b^2).

xDegRad, xRadDeg

The Degree vs. Radian conversion functions are important because not only do some of the Morrowind functions use one and some use the other, but all of the MWSE trigonometry functions calculate in Radians.

xCos, xSin, xTan
xArcCos, xArcSin, xArcTan


So if you want the tangent of 30 degrees you'll need to write

setx r to xDegRad 30.0
setx t to xTan r

I've only tried some of them, but they should all work.
TopReport Post
User is offlinePMEmail Poster
+Quote Post
BungaDunga
post Jan 30 2005, 12:35 AM
Post #100


Diviner
***

Joined: 30-August 04



Oh, I figured those out a while ago, but promptly forgot about them. Thanks for finding them and posting them ^_^

Also, I am having a lot of problems with xPositionCell. It seems that most of the time, when I use it in a script, the script does not seem to run properly. Basically, if I attach the script to an object, I can use showvars and see all the variables, but the script does not do anything at all- OnActivate doesn't fire, etc. Sometimes if I load and save the mod in the CS it fixes it, but not always, and that fix seems to have stopped working. Has anyone had this problem themselves?


--------------------
[REL] Better Portable Containers
QUOTE(qarl @ Dec 20 2004, 07:47 PM)
-The PC is to the Xbox as a man is to a eunuch.

Give a man a fire and he will be warm for the day, but light a man on fire and he will be warm for the rest of his life.
TopReport Post
User is offlinePMEmail Poster
+Quote Post

2 Pages  1 2 >
Fast ReplyReply to this topicTopic OptionsStart new topic
1 User(s) are reading this topic (0 Guests and 1 Anonymous Users)
0 Members:

 

Lo-Fi Version 0.5473sec    --    9 queries    GZIP Enabled
Time is now: 13th February 2005 - 04:41 PM